U.S. Pat. No. 4,774,511 describes a universal remote control unit which is able to control a number of different devices such as, a TV, a VCR, a disc player and an audio system. US 2008/0158038 describes the “TV-B-Gone” device which is able to power off TV sets made by different manufacturers.
There is a need for a universal remote control device which can be programmed to fully operate different brands of televisions, for example, and/or can be used to control other types of devices, such as recording devices, and set top boxes, which are used in conjunction with a TV. However, presently the universal remote control devices which are available are either limited in the number of different components they can be programmed to control or, as in the “TV-B-gone” device, are limited in the control functions they can provide.
Overview
According to a first aspect of the present invention there is provided a universal remote control device having a user interface, and transmission means for transmitting commands to electronic devices, the universal remote control device comprising processing means and associated memory, wherein, to enable the universal remote control device to provide commands to operate a plurality of electronic devices, a database is stored in the memory, the database containing control data which has been collected from a plurality of individual, physical remote control units, where each individual remote control unit is arranged to operate a respective one of the electronic devices, and
wherein control data which is common to a number of the physical remote control units is stored in virtual remote structures in the database, and
wherein a physical remote structure which corresponds to a selected one of the physical remote control units stores control data specific to that physical remote control unit and is linked to appropriate ones of the virtual remote structures whereby all the control data for that physical remote control unit can be retrieved.
Embodiments of the invention seek to store all of the control data necessary to ensure that the functionality of the universal remote control device is not limited, but to keep the size of the database small so that the memory required can also be kept small. This has led to the use of a database structure, in embodiments of the invention, in which common control data is stored in virtual remote structures which are available to a number of physical remote structures.
In a preferred embodiment, the virtual remote structures and physical remote structures are hierarchically arranged, with the physical remote structures being at the lowest or child level and the virtual remote structures being arranged in one or more upper or parent levels, such that each physical remote structure can inherit control data from one or more parent virtual remote structures.
The use of inheritance in embodiments of the present invention reduces the overall size of the data considerably.
In a preferred embodiment, the control data stored at the lowest or child level has a higher priority than control data stored at a higher or parent level, and it is arranged that on retrieval, any conflicts are resolved by retrieving the highest priority control data.
The provision of specific data for a remote in a child physical remote structure, which is also linked to one or more virtual parent remotes, reduces the size of the control data which has to be stored considerably. Conflicts are resolved by the use of priorities.
However, the physical remote control units, whose functions are to be undertaken by a universal remote control device of the invention may, themselves, have multiple functions and/or multiple protocols. In such a case, the physical remote structure, the child, can be provided with all of the data relating to one protocol, and a parent, virtual remote structure can be provided with additional data which relates to a second protocol. Alternative data can also be stored in the physical and virtual remote structures.
In this scenario, the control data stored at a higher or parent level has a higher priority than control data stored at the lowest or child level and it is arranged that on retrieval, any conflicts are resolved by retrieving the highest priority control data.
The control data determines commands to be transmitted to electronic devices. In an embodiment, if the control data it is required to retrieve for a particular command is absent from the remote structures having the higher priority, the required control data is retrieved from remote structures having a lower priority.
Other methods may be utilized to reduce the physical size of the control data as stored. For example, the size of the control data stored may be reduced by omitting repetitious and/or redundant control data.
In an embodiment, where the universal remote control device has a plurality of keys, and actuation of individual keys is arranged to output commands for transmission to electronic devices, only the commands of keys which output commands for transmission are stored in the database.
Preferably, key mapping is used to indicate which keys output commands.
In a preferred embodiment of a universal remote control device of the invention, where actuation of keys is arranged to output commands for transmission to electronic devices to operate those electronic devices, bit repetition data from the output commands is stored together with data, for each command, as to the bit position and the number of bit repetitions, such that each required output command need not be stored but can be generated from the data stored.
Each individual remote control unit may have an individual identification, for example, “CodeID”. Rather than storing each individual identification, which would use a lot of memory, an embodiment of the invention provides that the database stores the identification of a first remote control unit, and then stores only the relative jump from the identification of each remote control unit to the next remote control unit.
Preferably, and again to reduce the amount of information which has to be stored, control data for remote control units is stored in global tables, and the structure and control data for each remote control unit is stored using indexes which point to the control data to be retrieved.
The present invention also relates to a method of providing a universal remote control device, comprising
collecting control data for each one of a plurality of individual, physical remote control units, and arranging the collected control data in a database,
storing the formed database in a single, universal remote control device, and
arranging that the universal remote control device is operable to perform the functions of each one of the physical remote control units of the plurality by selectively retrieving the control data for each one of the physical remote control units from the database,
wherein control data which is common to a number of the physical remote control units is stored in virtual remote structures in the database, and
wherein a physical remote structure which corresponds to a selected one of the physical remote control units stores control data specific to that physical remote control unit and is linked to appropriate ones of the virtual remote structures whereby all the control data for that physical remote control unit can be retrieved.
In an embodiment, the virtual remote structures and physical remote structures are hierarchically arranged, with the physical remote structures being at the lowest or child level and the virtual remote structures being arranged in one or more upper or parent levels, such that each physical remote structure can inherit control data from one or more parent virtual remote structures.
In an embodiment, the control data stored at the lowest or child level has a higher priority than control data stored at a higher or parent level, and it is arranged that on retrieval, any conflicts are resolved by retrieving the highest priority control data.
Alternatively, the control data stored at a higher or parent level has a higher priority than control data stored at the lowest or child level, and it is arranged that on retrieval, any conflicts are resolved by retrieving the highest priority control data.
In an embodiment, where the control data determines commands to be transmitted to electronic devices, and the control data it is required to retrieve for a particular command is absent from the remote structures having the higher priority, the method further comprises enabling the required control data to be retrieved, in such circumstances, from remote structures having a lower priority.
Preferably, a method of the invention further comprises omitting repetitious and/or redundant control data from the control data stored to reduce the size of the control data stored.
In an embodiment of a method of the invention, where each individual remote control unit has an individual identification, the identification of a first remote control unit is stored in the database, and then only the relative jump from the identification of each remote control unit to the next remote control unit, starting from the first, is stored.
Preferably, control data for remote control units is stored in global tables, and the structure and control data for each remote control unit is stored using indexes which point to the control data to be retrieved.